# logging
"""
常用有四个等级：
debug
info
warning
error

默认只会输出 warning 及以上的日志

我们可以通过 logging.basicConfig(level=logging.DEBUG) 来改写
"""
# 假设我们有一个配置文件,里面有一个字段:logLevel,可以通过这个字段来配置日志等级
# 我们不需要debug日志的时候,就把日志等级调高,这个时候就看不到debug日志

# import logging
# logging.basicConfig(level=logging.DEBUG)
# logger = logging.getLogger(__name__)
#
# logger.debug("This is debug log")
# logger.info("This is info log")
# logger.warning("This is warning log")
# logger.error("This is error log")

# 调整日志输出端
"""
前面介绍中，日志是直接打印在终端的，但真正的使用过程中往往要输出为日志文件，只需要配置basicConfig即可。
日志写入默认是追加写入，不会覆盖文件原有内容。
通过这种方式，控制台就不会输出日志了，日志都会默认存到文件中。
我们后面可以通过其他的方式来进行日志文件输出，并且可以打印到控制台中。
这里只是介绍一下，日志是可以直接输出到文件里面的。
"""
import logging
# 使用basicConfig调整日志输出至文件，filename='demo01.log'
# logging.basicConfig(filename='demo01.log', level=logging.DEBUG)
# 清空后再写入filemode="w"  一般不会这么用，都是采用默认的追加模式
# logging.basicConfig(filename='demo01.log', filemode="w", level=logging.DEBUG)

# 调整日志格式

"""
我们可以发现，日志的输出十分单调。
而我们常常看到的日志一般会包含时间、日志等级、日志名称等其他信息。
这类信息是可以通过 调整 格式来进行改写的。

asctime: 日志输出时间
levelname: 日志级别
filename: 输出日志的脚本文件
lineno: 输出日志的脚本文件的行数
message: 日志主体内容

"""
import logging
# 输出日志打印时间，日志级别等
logging.basicConfig(format="%(asctime)s - %(levelname)s - %(filename)s - %(lineno)s - %(message)s", level=logging.DEBUG)
logging.debug(f"This is debug log")
